package com.sailing.xjpb.common;

/**
 * 约定系统常量
 *
 * @author YW
 */
public interface SailingConstants {

    /**
     * 分页参数 page-request.getParameter
     */
    String PARAM_PAGE = "pageNum";

    /**
     * 分页参数 size-request.getParameter
     */
    String PARAM_SIZE = "pageSize";

    /**
     * 排序字段-request.getParameter
     */
    String PARAM_SORT = "sortType";

    /**
     * 排序顺序 asc | desc-request.getParameter
     */
    String PARAM_ORDER = "direction";

    /**
     * 缓存块-枚举
     */
    String CACHE_DICTIONARY = "dictionary";
    /**
     * 缓存块-ipaas用户
     */
    String CACHE_IPAAS_USER = "ipaas_user";
    /**
     * 缓存块-ipaas组织
     */
    String CACHE_IPAAS_ORG = "ipaas_org";

    /**
     * 适用于条件为false时，数据库保存为0的情况
     */
    String BOOLEAN_FALSE = "0";
    /**
     * 适用于条件为true时，数据库保存为10的情况
     */
    String BOOLEAN_TRUE = "1";
    /**
     * 适用于条件为false时，数据库保存为0的情况
     */
    Integer BOOLEAN_FALSE_INT = 0;
    /**
     * 适用于条件为true时，数据库保存为10的情况
     */
    Integer BOOLEAN_TRUE_INT = 1;
    /**
     * sql  in的参数最大个数
     */
    int SQL_IN_PARAM_MAX_SIZE = 512;
    /**
     * *号
     */
    String CHAR_ALL = "*";
    /**
     * %号
     */
    String CHAR_LIKE = "%";
    /**
     * 默认的日期格式
     */
    String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    /**
     * 日期字符串长度
     */
    int DATE_LEN = 10;

    static String getState(boolean boolState) {
        return boolState ? BOOLEAN_TRUE : BOOLEAN_FALSE;
    }

    static String getState(String state) {
        return isTrue(state) ? BOOLEAN_TRUE : BOOLEAN_FALSE;
    }

    static boolean isFalse(Object value) {
        return !isTrue(value);
    }

    static boolean isTrue(Object value) {
        return BOOLEAN_TRUE.equals(String.valueOf(value));
    }
}
